Ext
		.onReady(function() {

			Ext.QuickTips.init();
			Ext.form.Field.prototype.msgTarget = 'under';

			var sm = new Ext.grid.CheckboxSelectionModel();
			var cm = new Ext.grid.ColumnModel([ sm, new Ext.grid.RowNumberer({
				header : "编号",
				width : 40
			}), {
				header : '流水号',
				dataIndex : 'serialNo',
				hidden : true
			}, {
				header : '成员公司名称',
				dataIndex : 'groupName',
				width : 100
			}, {
				header : '组织机构代码',
				dataIndex : 'orgId',
				width : 100
			}, {
				header : '一般授信额度',
				dataIndex : 'creditBalance',
				width : 100
			}, {
				header : '授信余额',
				dataIndex : 'creditRemaining',
				width : 100
			}, {
				header : '币种',
				dataIndex : 'currency',
				width : 100
			}, {
				header : '起始日',
				dataIndex : 'beginDate',
				width : 100,
				hidden:true,
			}, {
				header : '到期日',
				dataIndex : 'endDate',
				width : 100,
				hidden:true,
			}, {
				header : '成员关系',
				dataIndex : 'memberShip',
				width : 100,
			},
			 {
				header : '是否为我行客户',
				dataIndex : 'isOurCust',
				width : 100,
			} 
			
			]);
			var ds = new Ext.data.Store({
				proxy : new Ext.data.HttpProxy({
					url : 'customer/listMember.do',
					method : 'POST'
				}),
				reader : new Ext.data.JsonReader({}, [ {
					name : 'serialNo'
				}, {
					name : 'groupName'
				}, {
					name : 'orgId'
				}, {
					name : 'creditBalance'
				}, {
					name : 'creditRemaining'
				}, {
					name : 'currency'
				}, {
					name : 'beginDate'
				}, {
					name : 'endDate'
				}, {
					name : 'memberShip'
				},{
					name : 'isOurCust'
				}
				])
			});
			ds.load({
				params : {
					start : 0,
					limit : 10
				}
			});

			var addCurrencyStore = new Ext.data.Store({
				proxy : new Ext.data.HttpProxy({
					url : 'showType.do?type=Currency',
					method : 'GET'
				}),
				reader : new Ext.data.JsonReader({}, [ {
					name : 'name'
				}, {
					name : 'code'
				} ]),
				autoLoad : true
			});

			var addMemberShipStore = new Ext.data.Store({
				proxy : new Ext.data.HttpProxy({
					url : 'showType.do?type=MemberShip',
					method : 'GET'
				}),
				reader : new Ext.data.JsonReader({}, [ {
					name : 'name'
				}, {
					name : 'code'
				} ]),
				autoLoad : true
			});

			
			var addIsOurCustStore = new Ext.data.Store({
				proxy : new Ext.data.HttpProxy({
					url : 'showType.do?type=YesNo',
					method : 'GET'
				}),
				reader : new Ext.data.JsonReader({}, [ {
					name : 'name'
				}, {
					name : 'code'
				} ]),
				autoLoad : true
			});
			
			var grid = new Ext.grid.GridPanel({
				id : 'myCustomers',
				renderTo : "customer_list",
				stripeRows : true,// 斑马线效果
				title : "成员信息列表",
				height : 500,
				cm : cm,
				store : ds,
				loadMask : {
					msg : "加载中..."
				},
				viewConfig : {
					forceFit : true
				},
				bbar : new Ext.PagingToolbar({
					pageSize : 10,
					store : ds,
					displayInfo : true,
					displayMsg : '第{0} 到 {1} 条数据 共{2}条',
					emptyMsg : "没有数据"
				}),
				tbar : [ {
					text : '新增',
					id : 'btnAdd'
				}, '-', {
					text : '查看/编辑',
					handler : checkMyCustomer
				}, '-', {
					text : '删除',
					handler : deleteCustomer
				} ]
			});

			// 新增客户表单
			addForm = new Ext.form.FormPanel({
				id : 'addCustomerForm',
				width : 640,
				height : 200,
				// 样式
				bodyStyle : 'margin:3px 3px 3px 3px',
				frame : true,
				xtype : 'filedset',
				labelWidth : 120,
				items : [ {
					xtype : 'fieldset',
					title : '成员信息',
					collapsible : true,
					autoHeight : true,
					autoWidth : true,
					items : [ {
						layout : "form",
						items : [ {
							xtype : 'textfield',
							id : 'groupName',
							name : 'groupName',
							fieldLabel : '成员公司名称',
							emptyText : '必填',
							blankText : '成员公司不能为空',
							allowBlank : false,
							width : 300,
						} ]
					}, {
						layout : "form",
						items : [ {
							xtype : 'textfield',
							id : 'orgId',
							name : 'orgId',
							fieldLabel : '组织机构代码',
							emptyText : '必填',
							blankText : '组织机构代码不能为空',
							allowBlank : false,
							width : 300,
						} ]
					}, {
						layout : "column",
						items : [ {
							columnWidth : .5, // 该列有整行中所占百分比
							layout : "form",
							items : [ {
								xtype : 'textfield',
								id : 'creditBalance',
								name : 'creditBalance',
								fieldLabel : '一般授信额度（元）',
					               allowBlank : false,
								regex : /^[0-9]+\.{0,1}[0-9]{0,2}$/,
								regexText : '只能输入整数或小数！',
								width : 140
							} ]
						}, {
							columnWidth : .5, // 该列有整行中所占百分比
							layout : "form",
							items : [ {
								xtype : 'textfield',
								id : 'creditRemaining',
								name : 'creditRemaining',
								fieldLabel : '授信余额（元）',
					               allowBlank : false,
								regex : /^[0-9]+\.{0,1}[0-9]{0,2}$/,
								regexText : '只能输入整数或小数！',
								width : 140
							} ]
						} ]
					}

					, {
						layout : "column",
						items : [ {
							columnWidth : .5, // 该列有整行中所占百分比
							layout : "form",
							items : [ {
								xtype : 'combo',
								id : "currency",
								store : addCurrencyStore,
								fieldLabel : '币种',
								valueField : 'code',
								displayField : 'name',
								typeAhead : true,
								width : 140,
								mode : 'remote',
								emptyText : '请选择币种...',
								editable : false,
					               allowBlank : false,
								triggerAction : 'all',
								selectOnFocus : true,
								hiddenName : 'currency'
							} ]
						}, {
							columnWidth : .5, // 该列有整行中所占百分比
							layout : "form",
							items : [ {
								xtype : 'combo',
								id : "memberShip",
								store : addMemberShipStore,
								fieldLabel : '与借款人关系',
								valueField : 'code',
								displayField : 'name',
								typeAhead : true,
								width : 140,
								mode : 'remote',
								emptyText : '请选择与借款人关系...',
								editable : false,
					               allowBlank : false,
								triggerAction : 'all',
								selectOnFocus : true,
								hiddenName : 'memberShip'
							} ]
						} ]
					}, 
					{
						layout : "column",
						items : [ {
							columnWidth : .5, // 该列有整行中所占百分比
							layout : "form",
							items : [ {
								xtype : 'combo',
								id : "isOurCust",
								store : addIsOurCustStore,
								fieldLabel : '是否为我行客户',
								valueField : 'code',
								displayField : 'name',
								typeAhead : true,
								width : 140,
								mode : 'remote',
								emptyText : '请选择是否为我行客户...',
								editable : false,
					            allowBlank : false,
								triggerAction : 'all',
								selectOnFocus : true,
								hiddenName : 'isOurCust'
							} ]
						}]
					}, 
//					{
//						layout : "column",
//						items : [ {
//							columnWidth : .5, // 该列有整行中所占百分比
//							layout : "form",
//							items : [ {
//								xtype : 'datefield',
//								id : 'beginDate',
//								name : 'beginDate',
//								fieldLabel : '保证起始日',
//								allowBlank : true,
//								width : 140,
//								editable : false,
//								format : 'Y-m-d'
//							} ]
//						}, {
//							columnWidth : .5, // 该列有整行中所占百分比
//							layout : "form",
//							items : [ {
//								xtype : 'datefield',
//								id : 'endDate',
//								name : 'endDate',
//								fieldLabel : '保证到期日',
//								allowBlank : true,
//								width : 140,
//								editable : false,
//								format : 'Y-m-d'
//							} ]
//						} ]
//					},
					{
						layout : "form",
						items : [ {
							xtype : 'hidden',
							id : "serialNo",
							fieldLabel : 'ID',
							allowBlank : true
						} ]
					}

					]
				} ]
			});

			// 新增用户窗口
			addWin = new Ext.Window({
				id : 'addCustomerWin',
				title : '成员信息',
				width : 620,
				height : 300,
				// 背景遮罩
				modal : true,
				// 重置大小
				resizable : false,
				// 当关闭按钮被点击时执行的动作
				closeAction : 'hide',
				plain : true,
				buttonAlign : 'right',
				items : addForm,
				buttons : [ {
					text : '保存',
					id : 'btnSubmit'
				}, {
					text : '关闭',
					handler : function() {
						Ext.getCmp('addCustomerWin').hide();
					}
				}

				]
			});

			var config = {
				title : "提示",
				width : 240,
				msg : '<div align="center">添加成功！</div>',
				closable : false,
				buttons : {
					cancel : '取消',
					yes : '下一步',
					no : '继续添加成员信息'
				},
				fn : function(btn) {
					if (btn == 'yes') {
						window.location.href = 'view/customer/Customer_Group.jsp';
					}
				}
			// icon:Ext.MessageBox.Question
			}

			function addRoleFunction() {

				var addForm = Ext.getCmp("addCustomerForm");
				if (addForm.form.isValid()) {

					addForm.form.doAction('submit', {

						url : 'customer/addMember.do',

						method : 'post',

						success : function() {

							var msgbox = Ext.MessageBox.show(config);
							Ext.getCmp('addCustomerWin').hide();
							Ext.getCmp('myCustomers').store.reload();
							// Ext.Msg.alert('提示', '添加地址成功！');

						},
						failure : function(form, action) {

							Ext.Msg.alert('提示', '添加成员信息失败！');

						}
					});
				}
			}

			// 添加按钮单击事件
			function btnAddClick() {
				Ext.getCmp("addCustomerWin").show();
				addForm.getForm().getEl().dom.reset();
				Ext.getCmp("addCustomerWin").hide();

				Ext.getCmp("addCustomerWin").buttons[0].handler = addRoleFunction;
				Ext.getCmp("addCustomerWin").show();
			}
			;

			// 新增按钮
			var addUserBtn = Ext.getCmp('btnAdd');
			addUserBtn.on('click', btnAddClick);

			// 删除地址
			function deleteCustomer() {
				var grid = Ext.getCmp('myCustomers');
				if (grid.getSelectionModel().getSelections()[0] == undefined) {
					Ext.Msg.alert("提示", "请选中要删除的项！");
				} else {
					Ext.MessageBox.confirm('提示', '确实要删除所选项吗？', deleteConfirm);
				}
			}

			function deleteConfirm(btn) {
				if (btn == 'yes') {
					// alert(grid.getSelectionModel().getSelections()[0].data.serialNo);
					Ext.Ajax
							.request({
								url : 'customer/deleteMember.do',
								params : {
									serialNo : grid.getSelectionModel()
											.getSelections()[0].data.serialNo
								},
								method : 'POST',
								success : function() {
									Ext.MessageBox.alert("提示", "删除成功！");
									Ext.getCmp('myCustomers').store.reload();
								},
								failure : function() {
									Ext.MessageBox.alert("提示", "删除失败！");
								}
							});
				}
			}

			// 编辑地址
			function editAddressFunction() {

				var addForm = Ext.getCmp("addCustomerForm");

				if (addForm.form.isValid()) {
					addForm.form.doAction('submit', {

						url : 'customer/editMember.do',

						method : 'post',

						success : function() {

							Ext.getCmp('myCustomers').store.reload();
							Ext.Msg.alert('提示', '保存成功！');

						},
						failure : function(form, action) {

							Ext.Msg.alert('提示', '保存失败！');

						}
					});
				}
			}

			function checkMyCustomer() {
				if (grid.getSelectionModel().getSelections()[0] == undefined) {
					Ext.Msg.alert("提示", "请选中要编辑的项！");
				} else {
					var serialNo = grid.getSelectionModel().getSelections()[0].data.serialNo;

					Ext.getCmp('addCustomerForm').form.reset();
					Ext.getCmp("addCustomerWin").buttons[0].handler = editAddressFunction;

					Ext.Ajax
							.request({
								url : 'customer/getMember.do',
								params : {
									serialNo : grid.getSelectionModel()
											.getSelections()[0].data.serialNo
								},
								method : 'POST',
								success : function(response) {
									// alert(response.responseText);
									var addJSON = Ext.util.JSON
											.decode(response.responseText);

									Ext.getCmp("serialNo").setValue(
											addJSON.serialNo);
									Ext.getCmp("groupName").setValue(
											addJSON.groupName);
									Ext.getCmp("orgId").setValue(addJSON.orgId);
									Ext.getCmp("creditBalance").setValue(
											addJSON.creditBalance);
									Ext.getCmp("creditRemaining").setValue(
											addJSON.creditRemaining);
									Ext.getCmp("currency").setValue(
											addJSON.currency);
//									Ext.getCmp("beginDate").setValue(
//											addJSON.beginDate);
//									Ext.getCmp("endDate").setValue(
//											addJSON.endDate);
									Ext.getCmp("memberShip").setValue(
											addJSON.memberShip);
									Ext.getCmp("isOurCust").setValue(
											addJSON.isOurCust);

									Ext.getCmp("addCustomerWin").show();
								},
								failure : function() {
									Ext.MessageBox.alert("请求异常！");
								}
							});

					/*
					 * var addressStore = new Ext.data.Store({ proxy:new
					 * Ext.data.HttpProxy({
					 * url:'customer/getAddress.do?serialNo='+serialNo,
					 * method:'POST' }), reader:new Ext.data.JsonReader({ },[
					 * {name:'addressType'}, {name:'countryCode'},
					 * {name:'provinceCode'}, {name:'cityCode'},
					 * {name:'addressDesc'}, {name:'postCode'}, {name:'tel'},
					 * {name:'fax'}, {name:'webSiteUrl'} ]) });
					 * addressStore.load();
					 * 
					 * var record = addressStore.data.items[0]; alert(record);
					 * Ext.getCmp("addressDesc").setValue(record.addressDesc);
					 */

				}
			}

			function rowdblclickFn(grid, rowIndex, e) {// 双击事件
				var row = grid.getStore().getAt(rowIndex);
				var selectedCustId = row.get("custId");
				Ext.Ajax.request({
					url : 'checkRequest.do',
					method : 'GET',
					success : function() {
						window.location.href = "checkMyCustomer.do?CustId="
								+ selectedCustId;
					},
					failure : function() {
						Ext.MessageBox.alert("请求异常！");
					}
				});
				// window.location.href="view/customer/CheckCustomer_General.jsp?custId="+selectedCustId;
			}
			grid.addListener('rowdblclick', checkMyCustomer);
			/*
			 * grid.on('rowdblclick',function(){
			 * window.location.href="view/customer/CheckCustomer_General.jsp"
			 * });
			 */
		});